条件判断和逻辑表达式
(1)逻辑类型bool
(2)比较运算符
(3)逻辑运算符
(4)优先级和结合性
逻辑类型bool
运算符求值一个关系表达式,应该得到一个运算结果。python中用两个特殊的逻辑对象表示比较的结果,分别是 True 和 False ,他们是bool型中仅有的两个对象。
- 关系成立就会得到 True,表示结果为“真”。
- 关系不成立时将会得到 False,表示结论为“假”。
比较运算符
== | != | < | <= | > | >= |
---|---|---|---|---|---|
等于 | 不等于 | 小于 | 小于等于 | 大于 | 大于等于 |
比较运算符和两个数值表达式可以构造出一个关系表达式,其意义在于判断两个数值之间的特定的关系是否成立。
e.g.
>>> 3 > 2
True
>>> 3 < 2
False
逻辑运算符
用一个比较运算符可以比较两个数值(表达式)之间的一种关系,但是却不能够描述更复杂的关系。e.g.三角形的三边关系,仅用比较运算符不能完全判断,这时候,就需要写一个组合判断。
逻辑研究表明,只需要三个逻辑组合运算符就足以描述所有的组合判断:
(1)A与B,表示A和B都成立的组合判断
(2)A或B,表示A与B中至少一个成立的组合判断
(3)非A,表示A不成立的组合判断
or | and | not |
---|---|---|
或(或者) | 与 | 非(否定) |
- or 和 and 是二元运算符
- not 是一元运算符
基于比较和逻辑运算符构造的表达式是逻辑表达式。
e.g.
>>>3 > 2 and 7 <= 10
True
>>> 3 < 2 or 7 < 10
True
>>>not 3 > 2 or 7 > 10 or 7 > 5
True
为了书写方便,python允许连续使用比较运算符。
x > 1 and x < 10可以写成 1 < x <10。 类似的 10 < x > y 也是允许的,但是并不常见。
优先级和结合性
- 比较运算符的优先级低于算术运算符,因此 x+y > x2, 在进行比较时先计算比较运算符两边的 (x+y) 和(x2), 再进行比较。
- 逻辑运算符的优先级由高到低依次为 not, and, or,但是所以的逻辑运算符都低于比较运算符,因此在 not x2 > 5 or y < 6 and x * y > 8这个逻辑表达式是先运算算术运算,即先计算 x2 和 (x * y), 在运算关系表达式,(x2 > 5) , (y < 6) 以及 (x * y >8),最后再进行逻辑运算。
在引进了比较运算符和逻辑运算符之后,我们可以用变量a,b,c表示三角形的三边长,来构造条件:
>>> a > 0 and b > 0 and c > 0 and \
a + b > c and b + c > a and a + c > b #表达式很长,用 \ 续行符进行续行